package com.doit.day01

object _06_for循环 {
  def main(args: Array[String]): Unit = {
    val arr = 0 to 999  //包含于
    val arr1 = 0 until 99  // 不包含于

    val inclusive: Range.Inclusive = 0.to(9,2)


    val ints: Array[Int] = Array(1, 2, 3, 4)

/*    for (elem <- 0.to(9,2)) {
      println(elem)
    }

    for (elem <- 0 to 9 by 3 ) {
      println(elem)
    }*/


    //我现在想倒着来？？？
/*    for(elem <- 9 to 0 by -1){//
      println(elem)
    }



    for(elem <- 0 to 9 reverse){//
      println(elem)
    }*/


    //循环守卫
    //有个需求，1-10所有的数据都打，但是不想要5
    for(elem <- 1 to 10){
      if(elem !=5){
        println(elem)
      }
    }

    for(elem <- 1 to 10 if elem != 5){
        println(elem)
    }



    //引入变量
    for(i <- 1 to 3; j = 4 - i) {
      println("i=" + i + " j=" + j)
    }

    var j = 0
    for(i <- 1 to 3) {
      j = 4 - i
      println("i=" + i + " j=" + j)
    }


    //双重for循环  代表 99乘法表
    for(i <- 1 to 9){
      for(j <- 1 to i ){
        print(s"$i * $j = ${i*j} \t")
      }
      println()
    }

    for(i <- 1 to 9; j <- 1 to i){
      print(s"$i * $j = ${i*j} \t")
      if (i == j) println()
    }

/*    需求：倒序打印100-99里面所有的水仙花数
      水仙花数：指一个 3 位数，它的每个位上的数字的 3次幂之和等于它本身
      */
    for(elem <- 100 until 1000){
      val ge: Int = elem % 10
      val shi: Int = elem /10 % 10
      val bai: Int = elem /100 % 10
      if(Math.pow(ge,3)+Math.pow(shi,3)+Math.pow(bai,3) == elem){
        println(elem)
      }
    }






  }

}
